package transitarios.CLI.callback;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

import transitarios.CLI.ILinhaComandos;
import transitarios.api.ITransitario;

public class CallBackOpcoesEscreverLerDeFicheiro {

	public static void opcaoEscreverLerDeFicheiroEscreverEmFicheiro(
			ILinhaComandos cliTransitariosPOO, ITransitario transitariosPOO) {

		try {
			FileOutputStream foos = new FileOutputStream("transitarios.dat");
			ObjectOutputStream out = new ObjectOutputStream(foos);
			out.writeObject(transitariosPOO);
			out.close();
			foos.close();
			System.out.println("Ficheiro criado.");
		} catch (IOException i) {
			i.printStackTrace();
		}

	}

	public static void opcaoEscreverLerDeFicheiroLerDeFicheiro(
			ILinhaComandos cliTransitariosPOO, ITransitario transitariosPOO) {
		ITransitario savedTransitariosPOO = null;

		try {
			FileInputStream fileInputStream = new FileInputStream(
					"transitarios.dat");
			ObjectInputStream in = new ObjectInputStream(fileInputStream);
			savedTransitariosPOO = (ITransitario) in.readObject();
			in.close();
			fileInputStream.close();
		} catch (IOException i) {
			i.printStackTrace();

		} catch (ClassNotFoundException c) {
			System.out.println("ITransitario class not found.");
			c.printStackTrace();

		}
		if (savedTransitariosPOO != null) {
			transitariosPOO.setGestaoClientes(savedTransitariosPOO
					.getGestaoClientes());
			System.out.println("Carregados "
					+ savedTransitariosPOO.getGestaoClientes().contagem()
					+ " clientes.");
			// acresecentar carregamentos

		}

	}

}
